package com.huahua.api.service.entertainment.website;

import com.fasterxml.jackson.databind.JsonNode;
import com.huahua.api.entity.entertainment.website.param.WebsiteGenerateParam;
import com.huahua.api.entity.entertainment.website.pojo.EntertainmentWebsiteGenerateParam;
import com.huahua.api.entity.entertainment.website.pojo.EntertainmentWebsiteGenerateTemplate;
import com.huahua.api.entity.entertainment.website.vo.EntertainmentWebsiteGenerateTemplateVO;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/**
 * @author LoveHuaHua
 * @date 2023年08月21日 21:07
 * @description believe in yourself
 */
public interface EntertainmentWebsiteGenerateTemplateService {


    /**
     * 查询参数
     *
     * @param param 参数
     * @return {@link JsonNode}
     */
    Mono<JsonNode> queryParam(WebsiteGenerateParam param);

    /**
     * 生成
     *
     * @param param 参数
     * @return {@link String}
     */
    Mono<String> generate(EntertainmentWebsiteGenerateParam param);

    /**
     * 查询模板信息
     *
     * @param param 参数
     * @return {@link EntertainmentWebsiteGenerateTemplateVO}
     */
    Mono<EntertainmentWebsiteGenerateTemplateVO> queryTemplateInfo(EntertainmentWebsiteGenerateTemplate param);

    Mono<EntertainmentWebsiteGenerateTemplate> findById(Integer id);

    Flux<EntertainmentWebsiteGenerateTemplate> findAll();

    Flux<EntertainmentWebsiteGenerateTemplate> findByType(Integer type);
}
